﻿var DocumentoPaqueteTrabajo_Controller =
{
    ListarGridTransicion:    
    function DocumentoPaqueteTrabajo_Controller_ListarGridTransicion()
    {
        Global_UI.BlockUI(true);

        Global_UI.AjaxPOST
        (
            "RegistrarTarea.aspx/ListarGridTransicion",
            JSON.stringify
            ({
                paqueteTrabajoId: $("#hiddenPaqueteTrabajoId").val(),
                estadoOrigenId: $("#hiddenEstadoPaqueteTrabajoId").val(),
                estadoDestinoId: $("#hiddenSiguienteEstadoPaqueteTrabajoId").val()
            }),
            DocumentoPaqueteTrabajo_Controller.ListarGridTransicion_CallBack
        )
    },

    ListarGridTransicion_CallBack:    
    function DocumentoPaqueteTrabajo_Controller_ListarGridTransicion_CallBack(response)
    {
        var detalles = response.d;

        var tableId = "gridDocumentosTransicion";
        
        var flagAlternate = false;

        var grid = 
        $("<table>", { id: tableId }).addClass("TableGridJSON").append
        (
            $("<tr>", {}).addClass("HeaderGridJSON").append
            (
                $("<td>", { colspan: 8, html: detalles.length + " registros" })
            ),
            //Cabeceras de la grilla
            $("<tr>", {}).append
            (
                $("<th>", {}).addClass("ColumnSelect"),
                $("<th>", { html: "Estado", width: "auto"}),
                $("<th>", { html: "Documento a adjuntar", width: "140px"}),
                $("<th>", { html: "Usuario Registro", width: "140px"}),
                $("<th>", { html: "Fecha Registro", width: "140px"}),
                $("<th>", { html: "Archivo adjunto", width: "200px"}),
                $("<th>", { width: "15px"}),
                $("<th>", { width: "15px"})
            ),
            //Filas de la grilla
            $.map
            (
                detalles,
                function (registro) 
                {
                    var classRowGrid = (!flagAlternate ? "rowGridJSON" : "rowGridJSONAlter");
                    var rowId = tableId + "_row" + registro.Id;

                    flagAlternate = !flagAlternate;

                    return $("<tr>",
                    { 
                        id: rowId,
                        mouseover: function () { $(this).removeClass(classRowGrid); $(this).addClass("rowGridSelect"); },
                        mouseleave: function () { $(this).removeClass("rowGridSelect"); $(this).addClass(classRowGrid); }
                    }).addClass(classRowGrid).append
                    (
                        $("<td>", { html: "►" }).addClass("ColumnSelect"),
                        $("<td>", { html: registro.EstadoPaqueteTrabajoOrigen + " - " + registro.EstadoPaqueteTrabajoDestino }).addClass(CssWeb.FormatText),
                        $("<td>", { html: registro.Documento_A_Adjuntar }).addClass(CssWeb.FormatText),
                        $("<td>", { html: registro.UsuarioRegistro }).addClass(CssWeb.FormatText),
                        $("<td>", { html: registro.FechaRegistro }).addClass(CssWeb.FormatText),
                        $("<td>", { html: registro.Documento_Adjunto }).addClass(CssWeb.FormatText),
                        $("<td>", {}).append
                        (
                            $("<img>", 
                            {
                                title: "Adjuntar", 
                                click: function() { $("#hiddenDocumentoTransicionEstadoId").val(registro.Id),Global_UI.FileUpload("DocumentoPaqueteTrabajo_Controller.AdjuntarTransicion",true); }
                            }).addClass(CssWeb.GridJSON_IconEdit)
                        ),
                        $("<td>", {}).append
                        (
                            $("<img>", 
                            {
                                title: "Visualizar", 
                                click: function(){ Global_UI.MostrarDocumentoDigital(registro.DocumentoDigitalId); }
                            }).addClass(CssWeb.GridJSON_IconDetail)
                        )
                    );
                }
            )
        );

        target = $("#divGridDocumentosTransicion");
        target.html("");
        target.append(grid);

        Global_UI.BlockUI(false);
    },

    AdjuntarTransicion:
    function DocumentoPaqueteTrabajo_Controller_AdjuntarTransicion(documentoDigitalId)
    {
        Global_UI.BlockUI(true);

        var registro =
        {
            Id: $("#hiddenDocumentoTransicionEstadoId").val(),
            EstadoPaqueteTrabajoOrigenId: $("#hiddenEstadoPaqueteTrabajoId").val(),
            EstadoPaqueteTrabajoDestinoId: $("#hiddenSiguienteEstadoPaqueteTrabajoId").val(),
            DocumentoDigitalId:documentoDigitalId,
            PaqueteTrabajoId: $("#hiddenPaqueteTrabajoId").val()
        };

        Global_UI.AjaxPOST
        (
            "RegistrarTarea.aspx/AdjuntarTransicion",
            JSON.stringify
            ({
                registro: registro,
            }),
            DocumentoPaqueteTrabajo_Controller.AdjuntarTransicion_CallBack
        )
    },

    AdjuntarTransicion_CallBack:
    function DocumentoPaqueteTrabajo_Controller_AdjuntarTransicion_CallBack(response)
    {
        Global_UI.BlockUI(false);

        DocumentoPaqueteTrabajo_Controller.ListarGridTransicion();
    },

    InitGrid:
    function DocumentoPaqueteTrabajo_Controller_InitGrid()
    {
        var grid =
        {
            Target: "containerDocumentos",
            TableId: "gridDocumentoPaqueteTrabajo",
            PrimaryKey: "Id",
            Fields:
            [
                { Header: "Estado", DataField: "EstadoPaqueteTrabajo", Width:"180px", DataFieldEdit: "EstadoPaqueteTrabajo", StyleCss: CssWeb.FormatText, ControlEdit: GridJSON.TextBox, MaxLength : 100, ControlCss: CssWeb.TextBoxMedium },
                { Header: "Usuario Registro", DataField: "UsuarioRegistro", Width:"180px", DataFieldEdit: "UsuarioRegistro", StyleCss: CssWeb.FormatText, ControlEdit: GridJSON.TextBox, MaxLength : 100, ControlCss: CssWeb.TextBoxMedium },
                { Header: "Documento", DataField: "NombreArchivo", Width:"180px", DataFieldEdit: "NombreArchivo", StyleCss: CssWeb.FormatText, ControlEdit: GridJSON.TextBox, MaxLength : 100, ControlCss: CssWeb.TextBoxMedium },
                { Header: "Fecha Registro", DataField: "FechaRegistro_Format", Width:"140px", OrderBy:"FechaRegistro", DataFieldEdit: "FechaRegistro_Format", StyleCss: CssWeb.FormatCenter, ControlEdit: GridJSON.DatePickerJquery, MaxLength : 10, ControlCss: CssWeb.TextBoxShort }
            ],
            RecordSearch: { EstadoPaqueteTrabajo : "", UsuarioRegistro : "",NombreArchivo : "", FechaRegistro_Format : ""},
            ShowPaging: DatosControles.GridJSON_ShowPagging,
            ChooseShowPaging: DatosControles.GridJSON_ChoosePagging,
            TotalRecords: 0,
            PageIndex: 1,
            OrderBy: "FechaRegistro Desc",
            FunctionLoadGrid: DocumentoPaqueteTrabajo_Controller.ListarGridJSON,
            FunctionExportToExcel: DocumentoPaqueteTrabajo_Controller.ExportarExcelGrid,
            FunctionAddRecord: function() { Global_UI.FileUpload("DocumentoPaqueteTrabajo_Controller.AdicionarRegistro",true); },
            //FunctionSaveRecord: ComentarioPaqueteTrabajo_Controller.GrabarRegistro,
            ButtonsActionRecord:
            [
                { styleCss: CssWeb.GridJSON_IconDetail, toolTip: DatosControles.GridJSON_ToolTipDetalle, functionAction: DocumentoPaqueteTrabajo_Controller.DetalleRegistro }
                //{ styleCss: CssWeb.GridJSON_IconDelete, toolTip: DatosControles.GridJSON_ToolTipEliminar, functionAction: ComentarioPaqueteTrabajo_Controller.EliminarRegistro }
            ]
        }

        DocumentoPaqueteTrabajo_Controller.Grid = grid;
    },

    Grid: {},

    ListarGridJSON:
    function DocumentoPaqueteTrabajo_Controller_ListarGridJSON(registroBusqueda, orderBy, cantidadMostrar, paginaActual) 
    {
        DocumentoPaqueteTrabajo_Controller.Grid.RecordSearch = registroBusqueda;
        DocumentoPaqueteTrabajo_Controller.Grid.OrderBy = orderBy;
        DocumentoPaqueteTrabajo_Controller.Grid.ChooseShowPaging = cantidadMostrar;
        DocumentoPaqueteTrabajo_Controller.Grid.PageIndex = paginaActual;

        DocumentoPaqueteTrabajo_Controller.ListarGridPaging();
    },

    ListarGridPaging:
    function DocumentoPaqueteTrabajo_Controller_ListarGridPaging()
    {
        Global_UI.BlockUI(true);

        DocumentoPaqueteTrabajo_Controller.Grid.RecordSearch.PaqueteTrabajoId = $("#hiddenPaqueteTrabajoId").val();

        Global_UI.AjaxPOST
        (
            "RegistrarTarea.aspx/ListarDocumentoPaqueteTrabajos",
            JSON.stringify
            ({
                registroBusqueda: DocumentoPaqueteTrabajo_Controller.Grid.RecordSearch,
                paginaActual: DocumentoPaqueteTrabajo_Controller.Grid.PageIndex,
                cantidadMostrar: DocumentoPaqueteTrabajo_Controller.Grid.ChooseShowPaging,
                orderBy: DocumentoPaqueteTrabajo_Controller.Grid.OrderBy
            }),
            DocumentoPaqueteTrabajo_Controller.ListarGridPaging_CallBack
        )
    },

    ListarGridPaging_CallBack:
    function DocumentoPaqueteTrabajo_Controller_ListarGridPaging_CallBack(response)
    {
        var view = response.d

        DocumentoPaqueteTrabajo_Controller.Grid.TotalRecords = view.TotalRegistros;

        GridJSON.DataBind(DocumentoPaqueteTrabajo_Controller.Grid, view.DocumentoPaqueteTrabajos);

        Global_UI.BlockUI(false);
    },

    ExportarExcelGrid:
    function DocumentoPaqueteTrabajo_Controller_ExportarExcelGrid(registroBusqueda)
    {
        Global_UI.BlockUI(true);

        registroBusqueda.PaqueteTrabajoId = $("#hiddenPaqueteTrabajoId").val();

        Global_UI.AjaxPOST
        (
            "RegistrarTarea.aspx/ExportarExcelDocumentoPaqueteTrabajos",
            JSON.stringify
            ({
                registroBusqueda: registroBusqueda,
                gridFields: DocumentoPaqueteTrabajo_Controller.Grid.Fields
            }),
            DocumentoPaqueteTrabajo_Controller.ExportarExcelGrid_CallBack
        )
    },

    ExportarExcelGrid_CallBack:
    function DocumentoPaqueteTrabajo_Controller_ExportarExcelGrid_CallBack(response)
    {
        var archivo = response.d;

        Global_UI.MostrarExportacionExcel(archivo);

        Global_UI.BlockUI(false);
    },

    DetalleRegistro:
    function DocumentoPaqueteTrabajo_Controller_DetalleRegistro(id)
    {
        Global_UI.BlockUI(true);

        Global_UI.AjaxPOST
        (
            "RegistrarTarea.aspx/CargarDocumentoPaqueteTrabajo",
            JSON.stringify
            ({
                id: id
            }),
            DocumentoPaqueteTrabajo_Controller.DetalleRegistro_CallBack
        )
    },

    DetalleRegistro_CallBack:
    function DocumentoPaqueteTrabajo_Controller_DetalleRegistro_CallBack(response)
    {
        var view = response.d;

        Global_UI.MostrarDocumentoDigital(view.DocumentoPaqueteTrabajo.DocumentoDigitalId);

        Global_UI.BlockUI(false);
    },

    EditarRegistro:
    function DocumentoPaqueteTrabajo_Controller_EditarRegistro(id)
    {
        Global_UI.BlockUI(true);

        Global_UI.AjaxPOST
        (
            "RegistrarTarea.aspx/CargarDocumentoPaqueteTrabajo",
            JSON.stringify
            ({
                id: id
            }),
            DocumentoPaqueteTrabajo_Controller.EditarRegistro_CallBack
        )
    },

    EditarRegistro_CallBack:
    function DocumentoPaqueteTrabajo_Controller_EditarRegistro_CallBack(response)
    {
        var view = response.d;

        GridJSON.EditRecordGrid(DocumentoPaqueteTrabajo_Controller.Grid, view.DocumentoPaqueteTrabajo);

        Global_UI.BlockUI(false);
    },

    AdicionarRegistro:
    function DocumentoPaqueteTrabajo_Controller_AdicionarRegistro(documentoDigitalId)
    {
        Global_UI.BlockUI(true);

        var registro =
        {
            Id: "0",
            PaqueteTrabajoId: $("#hiddenPaqueteTrabajoId").val(),
            EstadoPaqueteTrabajoOrigenId : $("#hiddenEstadoPaqueteTrabajoId").val(),
            DocumentoDigitalId: documentoDigitalId
        };

        Global_UI.AjaxPOST
        (
            "RegistrarTarea.aspx/GrabarDocumentoPaqueteTrabajo",
            JSON.stringify
            ({
                  registro: registro
            }),
            DocumentoPaqueteTrabajo_Controller.AdicionarRegistro_CallBack
        )
    },

    AdicionarRegistro_CallBack:
    function DocumentoPaqueteTrabajo_Controller_AdicionarRegistro_CallBack(response)
    {
        var view = response.d;

        GridJSON.ReconstructRecordGrid(DocumentoPaqueteTrabajo_Controller.Grid, view.DocumentoPaqueteTrabajo, view.NuevoRegistro);

        Global_UI.BlockUI(false);
    },

    GrabarRegistro:
    function DocumentoPaqueteTrabajo_Controller_GrabarRegistro(registro)
    {
        Global_UI.BlockUI(true);

        Global_UI.AjaxPOST
        (
            "RegistrarTarea.aspx/GrabarDocumentoPaqueteTrabajo",
            JSON.stringify
            ({
                registro: registro
            }),
            DocumentoPaqueteTrabajo_Controller.GrabarRegistro_CallBack
        )
    },

    GrabarRegistro_CallBack:
    function DocumentoPaqueteTrabajo_Controller_GrabarRegistro_CallBack(response)
    {
        var view = response.d;

        GridJSON.ReconstructRecordGrid(DocumentoPaqueteTrabajo_Controller.Grid, view.DocumentoPaqueteTrabajo, view.NuevoRegistro);

        Global_UI.BlockUI(false);
    },

    EliminarRegistro:
    function DocumentoPaqueteTrabajo_Controller_EliminarRegistro(id)
    {
        Global_UI.Confirm
        (
            MensajesUsuario.EliminarRegistro,
            MensajesUsuario.TituloMensajeSistema,
            function()
            {
                Global_UI.BlockUI(true);

                Global_UI.AjaxPOST
                (
                    "RegistrarTarea.aspx/EliminarDocumentoPaqueteTrabajo",
                    JSON.stringify
                    ({
                        id: id
                    }),
                    DocumentoPaqueteTrabajo_Controller.EliminarRegistro_CallBack
                );
            }
        );
    },

    EliminarRegistro_CallBack:
    function DocumentoPaqueteTrabajo_Controller_EliminarRegistro_CallBack(response)
    {
        var id = response.d;

        GridJSON.DeleteRecordGrid(DocumentoPaqueteTrabajo_Controller.Grid,id);

        Global_UI.BlockUI(false);
    }
};

var ConfigurarDocumentoPaqueteTrabajo_ASPX =
{
    Load:
    function ConfigurarDocumentoPaqueteTrabajo_ASPX_Load()
    {
        Global_UI.BlockUI(true);

        $("#btnConsultar").click(function () { GridJSON.SearchRecordsGridJSON(DocumentoPaqueteTrabajo_Controller.Grid); });
        $("#btnNuevo").click(function () { GridJSON.AddRecordGridJSON(DocumentoPaqueteTrabajo_Controller.Grid); });

        DocumentoPaqueteTrabajo_Controller.InitGrid();
        DocumentoPaqueteTrabajo_Controller.ListarGridPaging();
    }
};
